#ifndef _TEXTURE_H_
#define _TEXTURE_H_

#include <string>
#include "Image.h"
#include <GL/gl.h>

class Texture {

private:
	GLuint	textureID;
//	bool transparent;
	Image *image;
	static GLuint nextID;

public:
    // OpenGL requires texture images with dimensions that are powers of 2.   
	Texture(const std::string& strFilePath);
	
	const bool	operator==(const Texture& rhs) const;
	
	const GLuint getID() const { return textureID; }
	//const bool isTransparent() const { return transparent; }
	const bool isRegistered() const { return NULL == image; }	
	
	int getWidth() { return image->getWidth(); }
    int getHeight() { return image->getHeight(); }
    
	void bind();
	
	static const int INVALID_ID;
};

#endif //_TEXTURE_H_
